Despite the fact that Global System for Mobile Communication (GSM) networks have been commercially deployed for almost two decades, interest on the continued improvement of the GSM/Enhanced Data rates for GSM Evolution (EDGE) technology has not dwindled. Network equipment manufacturers, mobile equipment manufacturers and telecom operators continue to develop the GSM system further. Improvements to the hardware/spectral efficiencies for both voice and packet data services are being actively sought. To this end, precoded EGPRS/EGPRS phase 2 (EGPRS2) has been proposed. Precoding involves transformation of the symbol sequence using some suitable transform. Typically a Fourier Transformation is used. FIG. 1 gives a high level view of precoded EGPRS/EGPRS2. The blocks within the dashed box in FIG. 1 will now be described. After burst formatting, the bit sequence (bn) has the following structure.
                    (                                                            b                1                            ,              …              ⁢                                                          ,                              b                α                                                    ︸              guard                                ,                                                    b                                  α                  +                  1                                            ,              …              ⁢                                                          ,                              b                β                                                    ︸              tail                                ,                                                    b                                  β                  +                  1                                            ,              …              ⁢                                                          ,                              b                γ                                                    ︸              data                                ,                                                    b                                  γ                  +                  1                                            ,              …              ⁢                                                          ,                              b                δ                                                    ︸              training                                ,                                                    b                                  δ                  +                  1                                            ,              …              ⁢                                                          ,                              b                ɛ                                                    ︸              data                                ,                                                    b                                  ɛ                  +                  1                                            ,              …              ⁢                                                          ,                              b                φ                                                    ︸              tail                                ,                                                    b                                  φ                  +                  1                                            ,              …              ⁢                                                          ,                              b                ϕ                                                    ︸              guard                                      )                            (        1        )            
These bits are mapped to symbols drawn from a Phase Shift Keying (PSK)/Quadrature Amplitude Modulation (QAM) symbol constellation. The letters s,x,t,g will be used to denote PSK/QAM symbols that carry training, payload, tail or guard bits respectively. Thus,(b1, . . . ,bα,bφ+1, . . . ,bφ)→{right arrow over (g)}=(g1, . . . ,gη)  (guard)(bα+1, . . . ,bβ,bε+1, . . . ,bφ)→{right arrow over (t)}=(t1, . . . ,tν)  (tail)(bβ+1, . . . ,bγ,bδ+1, . . . ,bε)→{right arrow over (x)}=(x1, . . . ,xD)  (payload)(bγ+1, . . . ,bδ)→{right arrow over (s)}=(s1, . . . ,sNtr)  (training symbols),where η is the total number of guard symbols, ν is the total number of tail symbols, D is the total number of payload symbols and Ntr is the number of training symbols. The total number of payload plus training symbols is N=D+Ntr and the total number of symbols in the burst is K=N+η+ν.
The output of the symbol mapping block is the sequence of symbols
                              [                                    c              1                        ,            …            ⁢                                                  ,                          c              K                                ]                ⁢                  =          def                ⁢                              [                                          g                ->                            ,                              t                ->                            ,                              x                ->                            ,                              d                ->                                      ]                    .                                    (        2        )            
It is convenient to intercalate the training symbols and the payload symbols for synchronization and channel estimation purposes. A vector {right arrow over (z)} of length N is constructed from the payload {right arrow over (x)} and training symbols {right arrow over (s)} accordingly.
                              z          ->                =                                            [                                                z                  1                                ,                …                ⁢                                                                  ,                                  z                  N                                            ]                        T                    ⁢                      =            def                    ⁢                                                    [                                                      x                    1                                    ,                  …                  ⁢                                                                          ,                                      s                    1                                    ,                  …                  ⁢                                                                          ,                                      x                    p                                    ,                                      s                    m                                    ,                  …                  ⁢                                                                          ,                                      s                                          N                      tr                                                        ,                  …                  ⁢                                                                          ,                                      x                    D                                                  ]                            ⁢                                                          ⁢                                                          ↕                                                          ↕                                                          ↕                                                          ↕                                                          ↕                                                          ⁢                                                          ⁢                              k                ⁡                                  (                  1                  )                                                      ⁢                                                  ⁢            …            ⁢                                                  ⁢                          n              ⁡                              (                1                )                                      ⁢                                                  ⁢            …            ⁢                                                  ⁢                          k              ⁡                              (                p                )                                      ⁢                                                  ⁢                          n              ⁡                              (                m                )                                      ⁢                                                  ⁢                          n              ⁡                              (                                  N                  tr                                )                                      ⁢                                                  ⁢                          k              ⁡                              (                D                )                                                                        (        3        )            The location of the training symbols is given by the indices (n(m))m=1Ntr. Likewise, the location of the payload symbols is given by (k(m))m=1D. That is, zn(p)=sp and zk(p)=xp. The location of the training symbols should be chosen carefully as it has a large impact on the receiver performance. Discrete Fourier Transform (DFT)-precoding is applied to {right arrow over (z)} to form a new sequence of complex numbers {right arrow over (Z)} as follows. Let W be the Fourier transform matrix of size N×N whose entry in the m-th row and i-th column is
            W              m        ,        i              ⁢          =      def        ⁢                  1                  N                    ⁢              exp        ⁡                  (                                    -              j                        ⁢                                                  ⁢            2            ⁢                          π              ⁡                              (                                  m                  -                  1                                )                                      ⁢                                          (                                  i                  -                  1                                )                            /              N                                )                      ,for 1≦m,i≦N. The pre-coding operation is {right arrow over (Z)}=WH·{right arrow over (z)}.
Multiplication by the matrix WH can be implemented efficiently using the fast Fourier transform. Next, an integer L≧0 is chosen and the last L terms in {right arrow over (Z)} are appended at the beginning of {right arrow over (Z)} to form a new vector {right arrow over (Z)}P. In other words, a cyclic prefix of length L is added. For example the values L=0 (no prefix) or L=5 (typical GSM channel length) may be used. Using vector notation, the precoded symbols with the cyclic prefix added are
            Z      ->        P    =    ⁢            [                        Z          1          P                ,        …        ⁢                                  ,                  Z                      N            +            L                    P                    ]        ⁢          =      def        ⁢                  [                              Z                          N              -              L                                ,                      Z                          N              -              L              +              1                                ,          …          ⁢                                          ,                      Z            N                    ,                      Z            1                    ,                      Z            2                    ,          …          ⁢                                          ,                      Z            N                          ]            .      
The output of the vector precoding (IDFT) block is the sequence of complex numbers
                              [                                          ⁢                                    d              1                        ,                                                  ⁢                          d              2                        ,                                                  ⁢            …            ⁢                                                  ,                                                  ⁢                          d              K                                ]                ⁢                  =          def                ⁢                                  ⁢                                  ⁢                              [                                                  ⁢                                                                                                      g                      1                                        ,                    …                                    ⁢                                                                                                          ︸                  guard                                            ,                                                          ⁢                                                                                          t                      1                                        ,                    …                                    ⁢                                                                                                          ︸                  tail                                            ,                                                          ⁢                                                                    Z                    1                    P                                    ,                                      Z                    2                    P                                    ,                  …                  ⁢                                                                          ,                                      Z                                          N                      +                      L                                        P                                                                    ︸                                      payload                    +                    pilots                                                              ,                                                          ⁢                                                …                  ⁢                                                                          ,                                      t                    v                                                                    ︸                  tail                                            ,                                                          ⁢                                                …                  ⁢                                                                          ,                                      g                    η                                                                    ︸                  guard                                                      ⁢                                                  ]                    ⁢                                          .                                    (        4        )            
This sequence is pulse shaped to obtain the baseband signal, as follows.
                                          y            ⁡                          (              t              )                                =                                    ∑              n                        ⁢                                          d                n                            ·                              p                ⁡                                  (                                      t                    -                    nT                    +                    φ                                    )                                                                    ,                  0          ≤          t          ≤                      τ            .                                              (        5        )            
Here ρ is the pulse shaping filter, T is the symbol period (in seconds), φ is the phase and τ is the duration of the burst (in seconds). Finally, the pulse shaped signal (5) is sent to the Radio frequency (RF) modulator.
In order to make precoded EGPRS backwards compatible with EGPRS/EGPRS2, the linearized GMSK pulse shaping filter is used, see 3GPP TS 45.004 Modulation. This is a partial response pulse, which introduces a significant amount of intersymbol interference (ISI) in the transmitted signal. Therefore, the length L of the cyclic prefix must be chosen large enough to cover not only the time dispersion in the radio channel and the receive filtering but also the large time dispersion introduced by the pulse shaping filter. This entails a larger overhead and therefore a loss of bandwidth. Furthermore, due to backward compatibility, the size N of the IDFT is not a highly composite number. Even though there are efficient Inverse Fast Fourier Transform (IFFT) algorithms for any size, the algorithms for highly composite lengths are much faster. Fast, highly efficient IFFT's are desirable for backward compatibility with legacy base station hardware, and reuse of existing mobile station (MS) platforms.
Moreover, highly efficient Fast Fourier Transforms (FFT's) also decrease the power consumption in the MS. For example, at the normal symbol rate N=142=116+26=2×71 (71 is a prime number) is not a highly composite number.
Hence there exists a need to reduce the above problems and to provide a more efficient method for transmitting signals in a GSM system. In particular when the signals are precoded.